package controlador;

import modelo.Orientacion.Posicion;
import modelo.controlAereo.Aeronave;
import titiritero.MouseClickObservador;
import titiritero.MouseDragReleaseObservador;
import vista.Aeronave.ImagenAeronave;

public class ControladorDeAeronaves implements MouseClickObservador, MouseDragReleaseObservador {
	
	private ImagenAeronave imagenAeronave;

	public ControladorDeAeronaves()
	{
		
	}
	
	public void MouseClickSobreAeronave(int posX, int posY, ImagenAeronave unaImagenAeronave)
	{
		/*if (imagenAeronave == null)
		{
			imagenAeronave=unaImagenAeronave;
			clicksRestantes=3;

		}
		
		if(clicksRestantes == 0)
		{
			imagenAeronave.deseleccionar();
			imagenAeronave=null;
		}else
		{
			imagenAeronave.seleccionar();
		}*/

	}

	@Override
	public void MouseClick(int posX, int posY) {
	/*
		if (imagenAeronave != null)
		{
			if(!estaDentroDelAreaDelAeronave(posX,posY) && clicksRestantes != 0)
			{
				imagenAeronave.getAeronave().agregarTrayectoria(new Posicion(posX,posY));
				clicksRestantes--;
				if(clicksRestantes == 0)
				{
					imagenAeronave.deseleccionar();
					imagenAeronave=null;
				}
			}
		}
*/
		

		
	}
	
	private boolean estaDentroDelAreaDelAeronave(int posX, int posY){
            Aeronave aeronave = imagenAeronave.getAeronave();
            Posicion pos = aeronave.obtenerPosicion();
            return aeronave.obtenerArea().esEstaUnaDeTusPosiciones(pos, new Posicion(posX,posY));
	}

	
	@Override
	public void MouseDrag(int posX, int posY) {
		if ((imagenAeronave != null)&&(!estaDentroDelAreaDelAeronave(posX,posY))){
				imagenAeronave.seleccionar();
				imagenAeronave.getAeronave().agregarTrayectoria(new Posicion(posX,posY));
		}
		
	}
	
	public void MouseDragSobreAeronave(int x, int y, ImagenAeronave unaImagenAeronave){
            Aeronave aeronave;
		if (imagenAeronave == null){
			imagenAeronave=unaImagenAeronave;
			aeronave = imagenAeronave.getAeronave();
                        if (aeronave.sePuedeCambiarLaTrayectoria()) aeronave.devolverTrayectoria().borrarLista();
			imagenAeronave.seleccionar();
		}
		
	}

	@Override
	public void MouseRelease(int x, int y) {
		if (imagenAeronave != null){
			imagenAeronave.deseleccionar();
			imagenAeronave = null;
		}


		
	}


}
